console.log('start');

Promise.resolve(((()=> {console.log(7)})())).then(() => {
    setTimeout(() => {
        console.log(1);
    }, 0)
    console.log(2)
}).then(() => {
    console.log(3) 
})

console.log(4); 

setTimeout(() => {
    console.log(5)
}, 0)

process.nextTick(() => {
    console.log(6) 
})

console.log('end')

/**
 * start
 * 4
 * end
 * 2
 * 6
 * 3
 * 5
 * 1
 **/
